home *** CD-ROM | disk | FTP | other *** search
- EXCEPTION(3C) Last changed: 4-9-99
-
-
- NNAAMMEE
- eexxcc__rreessuummee,, eexxcc__sseettjjmmpp,, ffiinndd__ffddee,, ffiinndd__ffddee__nnaammee,, eexxcc__uunnwwiinndd,,
- eexxcc__uunnwwiinndd__nnaammee - Exception handling facility
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<eexxcceeppttiioonn..hh>>
-
- ##iiff ((ddeeffiinneedd((__LLAANNGGUUAAGGEE__CC)) |||| ddeeffiinneedd((__LLAANNGGUUAAGGEE__CC__PPLLUUSS__PPLLUUSS))))
-
- ##iiff ((__MMIIPPSS__SSIIMM ==== __MMIIPPSS__SSIIMM__NNAABBII3322))
-
- DDwwaarrff__FFddee ffiinndd__ffddee((lloonngg ppcc));;
-
- DDwwaarrff__FFddee ffiinndd__ffddee((EEllff3322__AAddddrr **ppcc));;
-
- DDwwaarrff__FFddee ffiinndd__ffddee__nnaammee((EEllff3322__AAddddrr **ppcc,, cchhaarr ****nnaammee));;
-
- ##eellssee //** iiff ((__MMIIPPSS__SSIIMM ==== __MMIIPPSS__SSIIMM__AABBII6644)) **//
-
- DDwwaarrff__FFddee ffiinndd__ffddee((EEllff6644__AAddddrr **ppcc));;
-
- DDwwaarrff__FFddee ffiinndd__ffddee__nnaammee((EEllff6644__AAddddrr **ppcc,, cchhaarr ****nnaammee));;
-
- ##eennddiiff
-
- vvooiidd eexxcc__uunnwwiinndd((ssttrruucctt ssiiggccoonntteexxtt **ssccpp,, DDwwaarrff__FFddee ffddee));;
-
- vvooiidd eexxcc__uunnwwiinndd__nnaammee((ssttrruucctt ssiiggccoonntteexxtt **ssccpp,, DDwwaarrff__FFddee ffddee,, cchhaarr
- ****nnaammee));;
-
- iinntt eexxcc__rreessuummee((ssttrruucctt ssiiggccoonntteexxtt **ssccpp));;
-
- vvooiidd eexxcc__sseettjjmmpp((ssttrruucctt ssiiggccoonntteexxtt **ssccpp));;
-
- IIMMPPLLEEMMEENNTTAATTIIOONN
- IRIX systems
-
- DDEESSCCRRIIPPTTIIOONN
- NOTE: This version (4.0) of exception handling facility is
- totally different from the (3.xx) versions. This version
- extracts information from the ..ddeebbuugg__ffrraammee section instead of the
- rruunnttiimmee pprroocceedduurree ttaabbllee as in the prior releases. The old
- functions (eexxcceeppttiioonn__ddiissppaattcchheerr, ffiinndd__rrppdd,
- sseett__uunnhhaannddlleedd__eexxcceeppttiioonn and uunnwwiinndd) are no longer supported.
-
- To handle exceptions from UNIX signals and to minimize the cost at
- runtime until an exception is encountered, the loader collects per-
- procedure exception information and frame information so that the
- stack unwinds easily at the point of exception.
-
- The data structure DDwwaarrff__FFddee is specified in the (..ddeebbuugg__ffrraammee)
- section. See the ddwwaarrff(4) man page for additional information.
-
- At runtime the following procedures will be provided in lliibbeexxcc..ssoo:
-
- ffiinndd__ffddee will return the Frame Description Entry(FDE) specified by the
- ppcc argument, if there is one, otherwise it will return NULL.
-
- ffiinndd__ffddee__nnaammee does the same thing as ffiinndd__ffddee but in addition returns
- the name of the procedure through the parameter nnaammee. Use ffrreeee to
- deallocate the returned strings after they are used. (See the
- ffrreeee(3C) man page for details on its use.)
-
- eexxcc__uunnwwiinndd will take the ssiiggccoonntteexxtt _s_c_p argument and virtually unwind
- by changing the fields to reflect the next frame on the stack. A
- ssiiggrreettuurrnn call can be called with this ssccpp upon return and will return
- to the frame unwind set up. The _f_d_e argument is used as the Frame
- Description Entry argument. If it is NULL, eexxcc__uunnwwiinndd will call
- ffiinndd__ffddee on ssccpp-->>sscc__ppcc to get it. If eexxcc__uunnwwiinndd is unable to unwind
- the stack, it will set the _s_c__p_c field of the _s_c_p parameter to 1,
- indicating invalid address.
-
- eexxcc__uunnwwiinndd__nnaammee does the same thing as eexxcc__uunnwwiinndd but in addition
- returns the name of the procedure of the current sigcontext through
- the parameter nnaammee. Use ffrreeee to deallocate the returned strings after
- they are used. (See the ffrreeee(3C) man page for details on its use.)
-
- eexxcc__sseettjjmmpp is like sseettjjmmpp, except that it saves V0 and also sets a
- special magic number so that eexxcc__rreessuummee can tell which degree of
- restoration is required.
-
- eexxcc__rreessuummee is like lloonnggjjmmpp, except that it restores the v0 that
- eexxcc__sseettjjmmpp saved and performs one of the three different degress of
- restoration, according to the magic number in the sigcontext.
-
- EEXXAAMMPPLLEESS
- cc main.o -lexc -ldwarf -lelf
-
- SSEEEE AALLSSOO
- ffrreeee(3C), lliibbeexxcc(3), mmaalllloocc(3C)
-
- ddwwaarrff(4)
-
- This man page is available only online.
-